When multiple database access processes located on a common system perform sequential database access searches simultaneously on a common database file, each search instruction takes an excessive amount of time. Each individual process needs to lock the memory block it is working on. If all processes are attempting to simultaneously access the same memory block, the instructions accessing the memory will take an extraordinary amount of time.
The prior solution used for searching a set of index items in the database file is sequential searching. This type of searching involves starting at the beginning of the index item list and comparing the first item with the requested record number. If they match, then the search is complete. If they don't match, the next item is considered. The process of going to the next item in the index item list if the current item does not match continues until either the end of the list is encountered or else until a match is found. If the end of the list is reached without a match, an error is returned to the application. If a match is found, the search is complete and the processing of the request continues. Other searching mechanisms may be used if the database file has been organized in a manner that supports these other searching mechanisms.